# File：orm_test.py
# Author：信思智学
# Date ：2025/8/11 10:32
# Info：

import os
if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoORM20250807.settings")
    import django
    django.setup()

    from app.models import User


    # User.objects.create(username="乔巴",password="123456")


    #01.查询所有
    # userlist = User.objects.all()
    # print(userlist)

    #02.通过主键或其他字段查询
    # 得到的结果是唯一的对象   {{user.username}}
    # 要求get查询得到的结果必须是唯一的
    # 如果数据 不存在 或 查询的结果比较多，那么会报错 get() returned more than one User -- it returned 2!
    # user = User.objects.get(username="乔巴43324")
    # print(user)

    #03.通过filter查询
    # 得到的结果是集合   {% for user in userlist %}  {{user.username}}
    # 如果数据不存在，则返回空集合
    # user = User.objects.filter(username="路飞123")
    # print(user)

    #04.通过values  当前台界面需要指定字段时使用 json格式 {key:value,key:value}
    # userlist = User.objects.all().values("id","username")
    # print(userlist)

    # 05.通过values_list  当前台界面需要指定字段时使用 得到得只有值，[(1, '路飞123'), (2, '乔巴'), (3, '乔巴')]
    # userlist = User.objects.all().values_list("id", "username")
    # print(userlist)

    #06.exclude(参数)  查询除了满足条件的所有数据
    # userlist = User.objects.exclude(id=2)
    # print(userlist)

    #07 .order_by(参数) 默认升序
    #   .order_by(-参数) 降序
    #   .order_by(参数1,参数2)  如果默认按照参数1升序，如果参数1一样，那么按照参数2升序
    # userlist = User.objects.order_by("sal","-id")
    # print(userlist)

    #08 .reverse()  反序输出
    # userlist = User.objects.order_by("-id").reverse()
    # print(userlist)

    #09 .count  统计
    # userlist = User.objects.all().count()
    # print(userlist)

    #10 .first()或者.last()  查询列表中的第一条或最后一条,得到是对象
    # userlist = User.objects.all().last()
    # print(userlist)

    #11 .exists()  查询数据是否存在，返回boolean类型
    userlist = User.objects.filter(id=2).exists()
    print(userlist)











